package org.grottarossa.ui.core.controls.deadline;


import java.util.ArrayList;
import java.util.ResourceBundle;


/**
 * Gestisce la logica del controllo di selezione data di scadenza processo
 * @author         
 * @uml.dependency   supplier="org.grottarossa.ui.core.controls.deadline.DeadLine"
 */
public class DeadLinePresenter
{
	private final DeadLine m_view;
	private DeadLineData m_data;
	private ArrayList<IDeadLineListener> m_listeners = new ArrayList<IDeadLineListener>();
	private final ResourceBundle m_localizer;

	public DeadLinePresenter(DeadLine view, ResourceBundle localizer)
	{
		this.m_view = view;
		this.m_localizer = localizer;
		m_view.setPresenter(this);
	}

	public void initialize()
	{
		m_data = new DeadLineData();
		m_view.setDeadLineData(m_data);
	}

	/***
	 * Notifica la selezione ai listener
	 */
	public void ok()
	{
		if(m_data.getType() == null)
		{
			m_view.showWarning(m_localizer.getString("form.messages.selectvalue"));
			return;
		}

		for(IDeadLineListener l : m_listeners)
		{
			l.ok(m_data);
		}
	}

	/***
	 * Notifica l'annullamento ai listener
	 */
	public void cancel()
	{
		for(IDeadLineListener l : m_listeners)
		{
			l.cancel();
		}
	}

	/***
	 * Aggiunge un listener al quale vengono notificate le operazioni sul controllo
	 * @param listener
	 */
	public void addListener(IDeadLineListener listener)
	{
		m_listeners.add(listener);
	}
}
